﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using turnos.core.util;
using turnos.core.modelo;
using System.Media;

namespace turnos.escritorio
{
    public partial class frmVisorTurnoActual : Form
    {
        private List<AgendaDeTurnos> _turnosPasados;

        public List<AgendaDeTurnos> TurnosPasados
        {
            get
            {
                if (_turnosPasados == null)
                    _turnosPasados = new List<AgendaDeTurnos>();
                return _turnosPasados;
            }
            set
            {
                _turnosPasados = value;
            }
        }
        public frmVisorTurnoActual()
        {
            InitializeComponent();
        }

        private void time_recarga_Tick(object sender, EventArgs e)
        {
            AgendaDeTurnos agenda = Modelo.TurnosModelo.TurnosC.TraerAgendaPorFechaConPuesto(DateTime.Now, turnosCts.ID_ESTADO_LLAMAR);
            if (agenda != null)
            {
                agenda.PasoPorVisor = true;
                Modelo.TurnosModelo.TurnosC.ActualizarAgenda(agenda, Modelo.TurnosModelo.Usuario.Usuario);
                TurnosPasados.Add(agenda);
                lblPuesto.Text = agenda.PuestoDescripcion;
                lblSolicitante.Text = (agenda.Solicitantes.ApeyNom);
                
                SoundPlayer My_JukeBox = new SoundPlayer(@"c:\alarm.wav");
                My_JukeBox.Play();
                

                dgvTurnosPasado.DataSource = TurnosPasados.OrderByDescending(x=>x.FechaModi).Take(20).ToList();
            }
        }

        private void frmVisorTurnoActual_Load(object sender, EventArgs e)
        {
            Modelo.TurnosModelo.ConfigurarDGV(dgvTurnosPasado, columnas_agenda());

        }

        private void lblPuesto_Click(object sender, EventArgs e)
        {

        }

        private List<DataGridViewColumn> columnas_agenda()
        {
            List<DataGridViewColumn> retorno = new List<DataGridViewColumn>();

            DataGridViewColumn c3 = new DataGridViewTextBoxColumn();
            c3.Name = "Solicitante";
            c3.Width = 300;
            c3.DataPropertyName = "SolicitanteDescripcion";

            retorno.Add(c3);

            DataGridViewColumn c4 = new DataGridViewTextBoxColumn();
            c4.Name = "Puesto";
            c4.DataPropertyName = "PuestoDescripcion";
            c4.Width = 150;
            retorno.Add(c4);

            return retorno;
        }

        private void frmVisorTurnoActual_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Escape)
                this.Close();
        }

        private void frmVisorTurnoActual_DoubleClick(object sender, EventArgs e)
        {
            this.time_recarga.Dispose();
            this.Close();
        }

        private void frmVisorTurnoActual_Leave(object sender, EventArgs e)
        {

        }

        private void dgvTurnosPasado_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
